Menu-driven interactive services are arranged to respond to user commands to the effect of adapting the services in accordance with available service options. A service is typically adapted to perform particular actions. A user may also receive prompts from a service to indicate a set of commands, which the user is expected to provide in order to select corresponding service options. For example, the commands may be audio commands provided using audio communications devices such as telephones, and audio prompts may be provided to the user in order to guide the user through service options and to specify the services to be provided.
Audio communications is one example of a modality through which commands may be given and prompts received to select service options. Other modalities include text and graphics. Text may be conveyed using instant messaging or a Short Message Service (SMS) text messages, whereas graphics may be provided by display screens, which may display data or allow options to be selected by, for example, a touch sensitive screen. Indeed, depending on the equipment which is available to a user, more than one mode may be employed, thereby providing a facility for multi-modal services.
Services may be provided over a network, for instance a mobile network including a server, which may provide, for example, services such as initiating a telephone call, retrieving voicemail or sending and retrieving text or picture messages. User commands may take a number of different forms. For instance, users may be able to issue a command by pressing a button or a series of buttons on a keypad of a user terminal such as a mobile telephone. Alternatively, the user may be able to issue a command by navigating and selecting menu items on a graphical user interface of a user terminal, or by providing a voice command. However, the commands, which a user may give to obtain services, and the type of services which can be obtained, can depend on media types through which a user can send and receive commands and prompts in accordance with modalities which are available to the user. Furthermore the modalities available to a user may change, as a result, for example, of the user up-grading equipment through which the services are to be provided.
User driven services are provided in a modular fashion, such that each individual service is built, packaged, and deployed as a physically separate collection of software components that implement the service. This modularity provides the advantage that new services may be deployed or existing services upgraded, without having to build, package, and deploy any of the other services on a platform. This modularity also extends to the provisioning of services to users; that is, different users of the platform may subscribe to different subsets of the services of an application program, such that each user can only access the features of the set of services to which he subscribes.
A menu-driven application typically has a top-level menu, which allows the user to determine which of the application's services is to be utilised at a given point in the interaction between the application and the user. Each service also contains a hierarchy of menus that allows the user to navigate among the service options. However, when a new service is to be added to the services available to the user, the top-level menu must be extended to allow the user to navigate to the menus of the new service. Additionally, a new service may contain functionality that is complementary to the functionality of one or more existing services, in which case a new service may also logically extend or modify the menus of those existing services. Furthermore, it may be necessary to include a new set of prompts to direct the user through the new service options, and the new service option may need to interact with other service options. This is referred to as service blending. As can be appreciated, anticipating all possible service options for many different users with respect to services available to those users requires considerable complexity and implementation logic which tests all possible combinations of service options which are available to each user. Under known approaches, adding a new service requires visiting every site in the service software which is dependent on service combinations, and adding a new set of conditional logic for the new combinations which are now possible. As will be appreciated, blending services efficiently represents a technical problem.